/*
 * Cunchuti.h
 *
 *  Created on: 2022年7月9日
 *      Author: 劉帥
 *  存儲體抽象類，包含存儲體文件名指针，存儲體文件路徑指针，存儲體大小（單位為字節），存儲體創建時間；這些成員均為私有，需通過對應的get和set方法訪問和修改，string類型對象需放在堆內存。
 */
#include <iostream>
#include <time.h>
#include <cstring>
using namespace std;

#ifndef CUNCHUTI_CUNCHUTI_H_
#define CUNCHUTI_CUNCHUTI_H_

class Cunchuti {
public:
	virtual ~Cunchuti();

	const char* const get_file_name(){
		return this->file_name;
	}

	void set_file_name(const string& file_name){
		memcpy(this->file_name,file_name.c_str(),file_name.size()+1);
	}

	const char* const get_file_path(){
		return this->file_path;
	}

	void set_file_path(const string& file_path){
		memcpy(this->file_path,file_path.c_str(),file_path.size()+1);
	}

	unsigned long get_size(){
		return this->size;
	}

	void set_size(unsigned long size){
		this->size = size;
	}

	time_t get_creat_time(){
		return this->creat_time;
	}

	void set_creat_time(time_t creat_time){
		this->creat_time = creat_time;
	}

	bool get_if_local(){
		return this->if_local;
	}

	void set_if_local(bool if_local){
		this->if_local = if_local;
	}

//	void free_file_name(){				//釋放file_name堆內存空間
//		if(file_name != NULL){
//			delete file_name;
//		}
//	}
//
//	void free_file_path(){				//釋放file_path堆內存空間
//		if(file_path != NULL){
//			delete file_path;
//		}
//	}
private:
	bool if_local;			//存儲體是否在本地
	char file_name[255];		//存儲體文件名
	char file_path[255];		//存儲體文件路徑
	unsigned long size;				//存儲體大小（單位為字節）
	time_t creat_time;		//存儲體創建時間
};

#endif /* CUNCHUTI_CUNCHUTI_H_ */
